草庐IT

javascript ondrop 事件

全部标签

c# - 我可以列出所有已注册的事件源吗?

我的Windows服务写入了事件日志,但我在纠正这个问题时遇到了各种问题。所以在这个过程中我用了很多不同的名字。我关注了一篇描述如何在Windows服务中设置事件日志的文章。所以在设计器中添加EventLog组件后,我将其添加到构造函数中:if(!System.Diagnostics.EventLog.SourceExists("AS0604"))System.Diagnostics.EventLog.CreateEventSource("AS0604","SIRR");eventLog1.Source="AS0604";eventLog1.Log="SIRR";eventLog1.W

c# - 单次事件订阅

我相当确信这是不可能的,但我还是要问。为了对事件进行单次订阅,我经常发现自己使用这种(自己发明的)模式:EventHandlerhandler=null;handler=(sender,e)=>{SomeEvent-=handler;Initialize();};SomeEvent+=handler;这是相当多的样板文件,它也让Resharper对修改后的闭包提示不已。有没有办法将此模式转换为扩展方法或类似方法?有更好的方法吗?理想情况下,我想要这样的东西:SomeEvent.OneShot(handler) 最佳答案 重构为扩展方

c# - 将键盘事件发送到 C# 中不处理 Windows 事件的另一个应用程序

这是我的情况:我们正在编写一个必须将MicrosoftKinect坐标转换为键盘和鼠标事件的应用程序。当我们需要控制鼠标时,在任何类型的应用程序中,一切都按照我们的预期进行。当我们需要将键盘事件(如按下或向上键)发送到不处理Windows事件的应用程序(例如游戏)时,就会出现问题。我们尝试了.net框架的SendKeys类,它只适用于Windows应用程序。当应用程序是像《半条命》或《毁灭战士》这样的游戏时,我们无法获得相同的效果。那么,这是我的问题:我们如何才能有效地将键盘事件发送到这些其他应用程序? 最佳答案 您需要使用Send

c# - CreateProcessAsUser 在事件 session 中创建窗口

我正在使用Windows服务中的CreateProcessAsUser(我们能否切题并假设我有充分的理由这样做)。与其他人在这里提出的问题相反,我在我的事件终端session(session1)中获得了一个窗口,而不是与服务(session0)相同的session-这是不可取的。我拨了ScottAllen'scode;并提出以下内容。显着的变化是“恢复self”、“CREATE_NO_WINDOW”和命令行参数支持。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSys

c# - .NET 事件特殊方法(添加/删除/提升/其他)

我想知道EventInfo.GetRaiseMethod和EventInfo.GetOtherMethods方法。显然,CLR支持4种与事件关联的方法:add、remove、raise和“others”。但是在C#中创建的事件只有add和remove...我假设raise在VB中使用,因为你必须指定一个RaiseEvent方法,但显然不是这样:GetRaiseMethod总是返回null。那么,有没有人知道:如果一个事件从未被使用过,那么将一个raise方法与该事件相关联有什么意义呢?是否有使用此方法引发事件的特定MSIL指令?(我在操作码中找不到类似的东西)GetOtherMetho

c# - 如何 TDD 异步事件?

基本问题是如何创建需要调用方法的单元测试,等待测试类上发生事件,然后调用另一个方法(我们实际要测试的方法)?如果您有时间进一步阅读,下面是场景:我正在开发一个必须控制硬件的应用程序。为了避免硬件可用性的依赖性,当我创建我的对象时,我指定我们在测试模式下运行。当发生这种情况时,被测试的类会创建适当的驱动程序层次结构(在本例中是硬件驱动程序的薄模拟层)。假设所讨论的类是一个电梯,我想测试给我电梯所在楼层数的方法。这是我的虚拟测试现在的样子:[TestMethod]publicvoidTestGetCurrentFloor(){varelevator=newElevator(Elevator

c# - 在 XAML 中为一个事件添加多个事件处理程序?

在程序代码中可以做以下事情://Addtwoeventhandlerforthebuttonclickeventbutton1.Click+=newRoutedEventHandler(button1_Click_1);button1.Click+=newRoutedEventHandler(button1_Click_2);但如何在XAML中为按钮的点击事件添加多个事件处理程序?感谢您的任何提示! 最佳答案 您不能在XAML中订阅多个事件处理程序。但是,您可以通过订阅单个事件处理程序然后从事件处理程序调用两个或多个方法来实现相同的

c# - MIDI 音序器以微秒分辨率触发事件

有没有办法以几微秒的分辨率在C#中触发事件?我正在构建一个MIDI音序器,它需要在每个MIDI滴答声中触发一个事件,然后播放当时注册的任何音符。在每分钟120拍和120ppqn(每拍/四分音符脉冲数)分辨率下,该事件应每4.16666毫秒触发一次。现代音序器具有更高的分辨率,例如768ppqn,这要求该事件每651微秒触发一次。我发现的短时间事件的最佳分辨率是1毫秒。我怎样才能超越它?这个问题一定已经被任何C#MIDI音序器或MIDI文件播放器解决了。也许我只是没有从正确的角度看待问题。感谢您的帮助。 最佳答案 大多数MIDI音序器

C# 在新进程启动时引发事件

嘿,有没有办法在不使用ManagementEventWatcher且不使用Process.GetProcesses()的情况下启动新进程时引发事件?ManagementEventWatcher的问题是用户需要有很高的premmisions。谢谢!!! 最佳答案 与您当前使用的外部事件Win32_ProcessStartTrace不同,__InstanceCreationEvent和__InstanceDeletionEventWMI内部事件不需要管理员权限。下面是一个示例查询,您可以使用它来跟踪进程启动:SELECTTargetIn

c# - 是什么导致 BindingList<T> 中的 ListChangedType.ItemMoved ListChange 事件?

我有一个显示在DataGrid中的BindingList(T)。我正在监视ListChanged事件并在ListChanged事件被触发时执行不同的操作。我正在检查事件的ListChangeType参数以检查列表是如何更改的,然后做出相应的响应。但是,我注意到有一个ListChanged事件类型ItemMoved。我有“上移”和“下移”按钮,用于在列表中上下移动项目。但这些实际上是删除选中的item,然后在更高或更低的位置重新插入。但是,我没有看到任何看起来会移动列表中的项目的BindingList(T)方法。那么我是不是遗漏了什么,或者只是没有办法移动BindingList中的项目,